package pers.zb.cloud.service.upms.service;



import pers.zb.cloud.service.upms.entity.SysPermission;
import pers.zb.cloud.service.upms.vo.PermissionVo;

import java.util.List;


public interface PermissionService extends BaseService<SysPermission>{

	/**
	 * 根据权限ID列表 获取权限列表
	 * @param permissionIdList 权限ID
	 * @return
	 */
	List<SysPermission> getPermissionList(List<Long> permissionIdList);

	/**
	 * 根据ID获取权限
	 */
	SysPermission getPermissionById(Long id);

	/**
	 * 根据父ID获取权限列表
	 *
	 * @param pid 父ID
	 * @param clientId
	 */
	List<PermissionVo> getPermissionListByPid(Long pid, String clientId);

	/**
	 * 判断是否具有子节点
	 */
	boolean haveChildrenMenu(Long id);

	/**
	 * 新增权限
	 */
	void addPermission(SysPermission sysPermission);

	/**
	 * 更新权限
	 */
	void updatePermission(SysPermission sysPermission) throws Exception;

	/**
	 * 获取出自身外的其他所有可用的权限
	 * @param id
	 * @param clientId
	 * @return
	 */
	List<PermissionVo> getPermissionListByNotItself(Long id, String clientId);

	/**
	 * 批量删除权限
	 *
	 * @param permissionIdArrs 权限ID数组
	 */
	void deletePermission(Long[] permissionIdArrs) throws Exception;
}
